<?php

namespace Util;
use Firebase\JWT\JWT;

class JwtUtil
{
    protected $key;
    protected $keyId;

    public function __construct()
    {
        $this->key = env('JWT_SECRET', null); // 替换成你自己的密钥
    }

    /**生成token
     * @param $data
     * @param $expire
     * @return string
     */
    public function generateToken($data, $expire = 3600*12)
    {
        $payload = [
            'iss' => 'contract_auth', // 发行者，替换成你自己的发行者
            'iat' => time(), // JWT 签发时间
            'exp' => time() + $expire, // JWT 过期时间
            'data' => $data // 需要保存在 JWT 中的数据
        ];

        return JWT::encode($payload, $this->key,'HS256');
    }

    /**验证身份
     * @param $token
     * @return null
     */
    public function verifyToken($token)
    {
//        try {
           $decoded = JWT::decode($token, new Key($this->key, 'HS256'));
            return $decoded->data;
//        } catch (\Exception $e) {
//            return null;
//        }
    }
}
